package org.jeecgframework.web.system.pojo.base;

import java.util.Date;

import javax.persistence.*;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * 
 * @ClassName：ZyInspectionPlanEntity.java
 * @Description：巡检计划
 * @author：LeiYoung
 * @version：V1.0
 * @Date：2016年10月9日 上午10:20:59
 */
@Entity
@Table(name = "zy_inspection_plan", schema = "")
@SuppressWarnings("serial")
public class ZyInspectionPlanEntity implements java.io.Serializable {
	/** 主键 */
	private java.lang.String id;
	/** 父 巡检计划 */
	private ZyInspectionPlanEntity zyIp;
	/** 巡检计划ID */
	@Excel(name = "巡检计划ID")
	private java.lang.String planId;
	/** 设备ID */
	@Excel(name = "设备ID")
	private ZyEquipmentSpareEntity equipmentSpare;
	/** 预约服务开始时间 */
	@Excel(name = "预约服务开始时间")
	private java.util.Date orderBeginTime;//这里如果改为 预计服务月份，对应的CbsEsPlanServiceImpl中有一个方法的sql中的字段需要对应改
	/** 预约服务结束时间 */
	@Excel(name = "预约服务结束时间")
	private java.util.Date orderEndTime;
	// 预约服务时间 开始-结束
	private String orderBeginToEndVal;
	/** 实际巡检时间 */
	@Excel(name = "实际巡检时间")
	private java.util.Date actualDate;
	/** 巡检单位 */
	@Excel(name = "巡检单位")
	private java.lang.String company;
	/** 巡检单位下是否有区域工程师 */
	private java.lang.String companyHadAreaEg;
	/** 第三方巡检负责人 */
	@Excel(name = "第三方巡检负责人")
	private ZyContactsEntity contacter;
	/** 巡检工程师 */
	@Excel(name = "巡检工程师")
	private ZyEngineerEntity engineer;
	/** 区域工程师 */
	private ZyEngineerEntity areaEngineer;
	/** 工程师预约上门时间 */
	@Excel(name = "工程师预约上门时间")
	private java.util.Date engineerOrderTime;
	/** 光路要求 */
	@Excel(name = "光路要求")
	private java.lang.String lightPath;
	// 光路要求 值
	private String lightPathVal;
	/** 计划巡检季度 */
	@Excel(name = "计划巡检季度")
	private java.lang.String planQuarter;
	/** 状态 */
	@Excel(name = "状态")
	private java.lang.String state;
	/** 备注 */
	@Excel(name = "备注")
	private java.lang.String remarks;
	/** 流程ID */
	private String processsId;
	/** 派单时间 */
	private Date sendToTpTime;
	/** 工程师预约上门时间修改次数 */
	private Integer engineerOrderTimeCount;
	/** 工程师备注 */
	private String engineerRemark;
	/** 第三方备注 */
	private String thirdpartyRemark;

	/** 巡检计划开始时间 */
	private Date beginTime;
	/** 巡检计划结束时间 */
	private Date endTime;
	/** 巡检报告保存提交时间*/
	private Date reportCommitTime;

    /**是否可修改预约时间*/
    private String canUpdateOrdertime;

	/** 创建人名称 */
	private java.lang.String createName;
	/** 创建人登录名称 */
	private java.lang.String createBy;
	/** 创建日期 */
	private java.util.Date createDate;
	/** 更新人名称 */
	private java.lang.String updateName;
	/** 更新人登录名称 */
	private java.lang.String updateBy;
	/** 更新日期 */
	private java.util.Date updateDate;
	
	/**巡检计划评价*/
	private CbsInspectionEvaluateEntity evaluate;

	/**确认上门时间标示*/
	private Integer confirmOrderTime;

    /**修改后上门时间*/
    private Date modifiedOrderTime;
    
    /**计划巡检年月*/
    private Date ipPlanDate;

    /**是否发送过微信提示信息（定时任务）*/
    private String hadSendWcMsg;
    
    /**巡检计划生成类型*/
    private String generateSource;

	// 省-市
	private String tsTerritoryVal;
	// 巡检计划状态
	private String stateVal;
	// 当前巡检计划 是否可以操作
	private String operationAble;
	// 影院巡检联系人
	private ZyContactsEntity zyCmIpCt;
	//巡检月份
	private String ipMonth;
	//第一次派单的机会，是否已使用.  1:已经发生过派单
	private String isTrun;
	//	当前的巡检任务，是否可转派，1：可以转派
	private String turnToSend;
	//巡检计划被转派后，之前巡检计划的工程师姓名
	private String reTurnPeople;

	@Column(name = "RE_TURN_PEOPLE", nullable = true, length = 36)
	public String getReTurnPeople() {
		return reTurnPeople;
	}

	public void setReTurnPeople(String reTurnPeople) {
		this.reTurnPeople = reTurnPeople;
	}

	@Column(name = "is_turn", nullable = true, length = 36)
	public String getIsTrun() {
		return isTrun;
	}

	public void setIsTrun(String isTrun) {
		this.isTrun = isTrun;
	}

//	@Column(name = "turn_to_send", nullable = true, length = 36)
    @Transient
	public String getTurnToSend() {
		return turnToSend;
	}

	public void setTurnToSend(String turnToSend) {
		this.turnToSend = turnToSend;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 主键
	 */
	@Id
	@GeneratedValue(generator = "paymentableGenerator")
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	@Column(name = "ID", nullable = false, length = 36)
	public java.lang.String getId() {
		return this.id;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 主键
	 */
	public void setId(java.lang.String id) {
		this.id = id;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 巡检计划ID
	 */
	@Column(name = "PLAN_ID", nullable = true, length = 36)
	public java.lang.String getPlanId() {
		return this.planId;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 巡检计划ID
	 */
	public void setPlanId(java.lang.String planId) {
		this.planId = planId;
	}

	/**
	 * @return the equipmentSpare
	 */
	@JsonIgnore
	@ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="EQUIPMENT_SPARE_ID")
	public ZyEquipmentSpareEntity getEquipmentSpare() {
		return equipmentSpare;
	}

	/**
	 * @param equipmentSpare
	 *            the equipmentSpare to set
	 */
	public void setEquipmentSpare(ZyEquipmentSpareEntity equipmentSpare) {
		this.equipmentSpare = equipmentSpare;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 预约服务开始时间
	 */
	@Column(name = "ORDER_BEGIN_TIME", nullable = true, length = 32)
	public java.util.Date getOrderBeginTime() {
		return this.orderBeginTime;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 预约服务开始时间
	 */
	public void setOrderBeginTime(java.util.Date orderBeginTime) {
		this.orderBeginTime = orderBeginTime;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 预约服务结束时间
	 */
	@Column(name = "ORDER_END_TIME", nullable = true, length = 32)
	public java.util.Date getOrderEndTime() {
		return this.orderEndTime;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 预约服务结束时间
	 */
	public void setOrderEndTime(java.util.Date orderEndTime) {
		this.orderEndTime = orderEndTime;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 实际巡检时间
	 */
	@Column(name = "ACTUAL_DATE", nullable = true, length = 32)
	public java.util.Date getActualDate() {
		return this.actualDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 实际巡检时间
	 */
	public void setActualDate(java.util.Date actualDate) {
		this.actualDate = actualDate;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 巡检单位
	 */
	@Column(name = "COMPANY", nullable = true, length = 100)
	public java.lang.String getCompany() {
		return this.company;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 巡检单位
	 */
	public void setCompany(java.lang.String company) {
		this.company = company;
	}

	/**
	 * @return 巡检负责人
	 */
	@JsonIgnore
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="CHARGE_PERSON",nullable=true)
	public ZyContactsEntity getContacter() {
		return contacter;
	}

	public void setContacter(ZyContactsEntity contacter) {
		this.contacter = contacter;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 巡检工程师
	 */
	@JsonIgnore
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "engineer", nullable = true)
	public ZyEngineerEntity getEngineer() {
		return this.engineer;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 巡检工程师
	 */
	public void setEngineer(ZyEngineerEntity engineer) {
		this.engineer = engineer;
	}
	
	/**
	 * @return 获取 区域工程师
	 */
	@JsonIgnore
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="aeg_id",nullable=true)
	public ZyEngineerEntity getAreaEngineer() {
		return areaEngineer;
	}

	/**
	 * @param 设置 区域工程师
	 */
	public void setAreaEngineer(ZyEngineerEntity areaEngineer) {
		this.areaEngineer = areaEngineer;
	}


	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 工程师预约上门时间
	 */
	@Column(name = "ENGINEER_ORDER_TIME", nullable = true, length = 32)
	public java.util.Date getEngineerOrderTime() {
		return this.engineerOrderTime;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 工程师预约上门时间
	 */
	public void setEngineerOrderTime(java.util.Date engineerOrderTime) {
		this.engineerOrderTime = engineerOrderTime;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 光路要求
	 */
	@Column(name = "LIGHT_PATH", nullable = true, length = 20)
	public java.lang.String getLightPath() {
		return this.lightPath;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 光路要求
	 */
	public void setLightPath(java.lang.String lightPath) {
		this.lightPath = lightPath;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 计划巡检季度
	 */
	@Column(name = "PLAN_QUARTER", nullable = true, length = 20)
	public java.lang.String getPlanQuarter() {
		return this.planQuarter;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 计划巡检季度
	 */
	public void setPlanQuarter(java.lang.String planQuarter) {
		this.planQuarter = planQuarter;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 状态
	 */
	@Column(name = "STATE", nullable = true, length = 50)
	public java.lang.String getState() {
		return this.state;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 状态
	 */
	public void setState(java.lang.String state) {
		this.state = state;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 备注
	 */
	@Column(name = "REMARKS", nullable = true)
	public java.lang.String getRemarks() {
		return this.remarks;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 备注
	 */
	public void setRemarks(java.lang.String remarks) {
		this.remarks = remarks;
	}

	/**
	 * @return the processsId
	 */
	@Column(name = "processs_id", nullable = true, length = 36)
	public String getProcesssId() {
		return processsId;
	}

	/**
	 * @param processsId
	 *            the processsId to set
	 */
	public void setProcesssId(String processsId) {
		this.processsId = processsId;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 创建人名称
	 */
	@Column(name = "CREATE_NAME", nullable = true, length = 50)
	public java.lang.String getCreateName() {
		return this.createName;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 创建人名称
	 */
	public void setCreateName(java.lang.String createName) {
		this.createName = createName;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 创建人登录名称
	 */
	@Column(name = "CREATE_BY", nullable = true, length = 50)
	public java.lang.String getCreateBy() {
		return this.createBy;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 创建人登录名称
	 */
	public void setCreateBy(java.lang.String createBy) {
		this.createBy = createBy;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 创建日期
	 */
	@Column(name = "CREATE_DATE", nullable = true, length = 20)
	public java.util.Date getCreateDate() {
		return this.createDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 创建日期
	 */
	public void setCreateDate(java.util.Date createDate) {
		this.createDate = createDate;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 更新人名称
	 */
	@Column(name = "UPDATE_NAME", nullable = true, length = 50)
	public java.lang.String getUpdateName() {
		return this.updateName;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 更新人名称
	 */
	public void setUpdateName(java.lang.String updateName) {
		this.updateName = updateName;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 更新人登录名称
	 */
	@Column(name = "UPDATE_BY", nullable = true, length = 50)
	public java.lang.String getUpdateBy() {
		return this.updateBy;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 更新人登录名称
	 */
	public void setUpdateBy(java.lang.String updateBy) {
		this.updateBy = updateBy;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 更新日期
	 */
	@Column(name = "UPDATE_DATE", nullable = true, length = 20)
	public java.util.Date getUpdateDate() {
		return this.updateDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 更新日期
	 */
	public void setUpdateDate(java.util.Date updateDate) {
		this.updateDate = updateDate;
	}

	/**
	 * @return 工程师备注
	 */
	@Column(name = "engineer_remark", nullable = true)
	public String getEngineerRemark() {
		return engineerRemark;
	}

	/**
	 * @param 工程师备注
	 */
	public void setEngineerRemark(String engineerRemark) {
		this.engineerRemark = engineerRemark;
	}

	/**
	 * @return 第三方备注
	 */
	@Column(name = "thirdparty_remark", nullable = true)
	public String getThirdpartyRemark() {
		return thirdpartyRemark;
	}

	/**
	 * @param 第三方备注
	 */
	public void setThirdpartyRemark(String thirdpartyRemark) {
		this.thirdpartyRemark = thirdpartyRemark;
	}

	@Column(name = "send_to_tp_time", nullable = true, length = 20)
	public Date getSendToTpTime() {
		return sendToTpTime;
	}

	public void setSendToTpTime(Date sendToTpTime) {
		this.sendToTpTime = sendToTpTime;
	}

	@Column(name = "engineer_order_time_count", nullable = true, length = 20)
	public Integer getEngineerOrderTimeCount() {
		return engineerOrderTimeCount;
	}

	public void setEngineerOrderTimeCount(Integer engineerOrderTimeCount) {
		this.engineerOrderTimeCount = engineerOrderTimeCount;
	}

	@Column(name = "begin_time", nullable = true, length = 20)
	public Date getBeginTime() {
		return beginTime;
	}

	public void setBeginTime(Date beginTime) {
		this.beginTime = beginTime;
	}

	@Column(name = "end_time", nullable = true, length = 20)
	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	@JsonIgnore
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "parent_ip_id")
	public ZyInspectionPlanEntity getZyIp() {
		return zyIp;
	}

	public void setZyIp(ZyInspectionPlanEntity zyIp) {
		this.zyIp = zyIp;
	}

	@Column(name = "company_had_area_eg", nullable = true, length = 1)
	public java.lang.String getCompanyHadAreaEg() {
		return companyHadAreaEg;
	}

	public void setCompanyHadAreaEg(java.lang.String companyHadAreaEg) {
		this.companyHadAreaEg = companyHadAreaEg;
	}

	@Transient
	public String getOrderBeginToEndVal() {
		return orderBeginToEndVal;
	}

	public void setOrderBeginToEndVal(String orderBeginToEndVal) {
		this.orderBeginToEndVal = orderBeginToEndVal;
	}

	@Transient
	public String getTsTerritoryVal() {
		return tsTerritoryVal;
	}

	public void setTsTerritoryVal(String tsTerritoryVal) {
		this.tsTerritoryVal = tsTerritoryVal;
	}

	@Transient
	public String getStateVal() {
		return stateVal;
	}

	public void setStateVal(String stateVal) {
		this.stateVal = stateVal;
	}

	@Transient
	public String getLightPathVal() {
		return lightPathVal;
	}

	public void setLightPathVal(String lightPathVal) {
		this.lightPathVal = lightPathVal;
	}

	@Transient
	public String getOperationAble() {
		return operationAble;
	}

	public void setOperationAble(String operationAble) {
		this.operationAble = operationAble;
	}

	@Transient
	public ZyContactsEntity getZyCmIpCt() {
		return zyCmIpCt;
	}

	public void setZyCmIpCt(ZyContactsEntity zyCmIpCt) {
		this.zyCmIpCt = zyCmIpCt;
	}

	@OneToOne(optional = true, mappedBy = "inspection")
	public CbsInspectionEvaluateEntity getEvaluate() {
		return evaluate;
	}

	public void setEvaluate(CbsInspectionEvaluateEntity evaluate) {
		this.evaluate = evaluate;
	}

    @Column(name = "can_update_ordertime")
    public String getCanUpdateOrdertime() {
        return canUpdateOrdertime;
    }

    public void setCanUpdateOrdertime(String canUpdateOrdertime) {
        this.canUpdateOrdertime = canUpdateOrdertime;
    }

    @Column(name = "modified_order_time")
    public Date getModifiedOrderTime() {
        return modifiedOrderTime;
    }

    public void setModifiedOrderTime(Date modifiedOrderTime) {
        this.modifiedOrderTime = modifiedOrderTime;
    }

	/**
	 * @return 获取 计划巡检年月
	 */
    @Column(name = "ip_plan_date")
	public Date getIpPlanDate() {
		return ipPlanDate;
	}

	/**
	 * @param 设置 计划巡检年月
	 */
	public void setIpPlanDate(Date ipPlanDate) {
		this.ipPlanDate = ipPlanDate;
	}
    
	@Column(name = "confirm_order_time")
	public Integer getConfirmOrderTime() {
		return confirmOrderTime;
	}

	public void setConfirmOrderTime(Integer confirmOrderTime) {
		this.confirmOrderTime = confirmOrderTime;
	}

	/**
	 * @return 获取 是否发送过微信提示信息
	 */
	@Column(name = "had_send_wc_msg")
	public String getHadSendWcMsg() {
		return hadSendWcMsg;
	}

	/**
	 * @param 设置 是否发送过微信提示信息
	 */
	public void setHadSendWcMsg(String hadSendWcMsg) {
		this.hadSendWcMsg = hadSendWcMsg;
	}

	/**
	 * @return 获取 ipMonth
	 */
	@Transient
	public String getIpMonth() {
		return ipMonth;
	}

	/**
	 * @param 设置 ipMonth
	 */
	public void setIpMonth(String ipMonth) {
		this.ipMonth = ipMonth;
	}

	/**
	 * @return 获取 巡检计划生成类型
	 */
	@Column(name="generate_source")
	public String getGenerateSource() {
		return generateSource;
	}

	/**
	 * @param 设置 巡检计划生成类型
	 */
	public void setGenerateSource(String generateSource) {
		this.generateSource = generateSource;
	}

	@Column(name="report_commit_time")
	public Date getReportCommitTime() {
		return reportCommitTime;
	}

	public void setReportCommitTime(Date reportCommitTime) {
		this.reportCommitTime = reportCommitTime;
	}

	
	
    
}
